package main

import "fmt"

/**
接口的继承和转换
*/
func main() {
	var stu Stu
	var hu Human
	hu = &stu //通过接口类型的变量，调用具体的方法
	hu.sout()
	var per Person
	per = &stu
	per.sout()
	per.sysPrint()

	/**
	接口转换
		per继承了hu
		然后将per给了hu
	*/
	hu = per
	hu.sout()

	//per = hu	报错，大的可以接收小的，小的不能接收大的

}

type Human interface {
	sout()
}
type Person interface {
	Human
	sysPrint()
}
type Stu struct {
}

//结构体实现方法
func (s *Stu) sout() {
	fmt.Println("HelloWorld")
}

//结构体实现方法
func (s *Stu) sysPrint() {
	fmt.Println("sysPrint")
}
